# -*- coding: utf-8 -*-

__author__ = 'Adrian Price-Whelan <adrn@astro.columbia.edu>'

# Standard library dependencies (e.g. sys, os)
import math

# Project Dependencies
import convert
import geometry
import astrodatetime
import custom_errors
import globals

class AstroObject(object):
    """ \brief Abstract class for any observed astronomical object. """
    
    # - Would have Coordinates defined in some CoordinateSystem
    # - Can associate images of the object
    # - Can associate spectra of the object

class Star(AstroObject):
    """ \brief Represents a Star. """
    # - From it's Super-class, has coordinates and possible images or spectra
    # - Spectral class?
    # - Line measurements --> all comes from Spectrum
    # - Name?
    # - Various measurements (metadata) stored in dictionary structure
    #   -> Magnitude / flux in various bands
    #   -> Mass
    #   -> Temperature
    #   -> Distance
    #   -> Proper motion
    # * Should be able to specify kinematics in different ways, e.g. proper motion
    #   + radial velocity, or real-space velocity
    # - Catalog digits? e.g. SAO or USNO-B1 associations
    
# I imagine an H-R function that takes a list of Star() objects and produces
#   an HR diagram!